// 导入静态的路由 和 完整的动态路由
import { constantRoutes,asyncRoutes } from '@/router'
export default {
  namespaced:true,
  state:{
    // 这个主要是系统的侧边栏渲染菜单的！
    routes:constantRoutes   // 用户最终完整的动态路由+静态路由  (最开始只有静态路由)
  },
  mutations:{
    // 修改routes, 传入动态的路由 
    setRoutes(state,newRoutes){
      // 静态路由+动态的路由
      state.routes = [...constantRoutes,...newRoutes,{ path: '*', redirect: '/404', hidden: true } ]
    }
  },
  actions:{
    // 过滤出属于当前用户的动态路由
    filterRoutes(context,menus){
      // 1. 准备好动态路由
      // console.log(asyncRoutes);
      // 2. 准备好服务器端返回的权限标识
      // console.log(menus);
      // 3. 筛选匹配
      const userAsyncRoutes = []
      menus.forEach(item=>{
        // item 每个页面的权限标识
        let row = asyncRoutes.find(val=>val.name === item)
        row && userAsyncRoutes.push(row)
      })
      // 4. 调用mutations
      context.commit('setRoutes',userAsyncRoutes)
      // 5. 关注的 router.addRoutes 
      return userAsyncRoutes
    }
  }
}